package com.accgm.api.db.model.base;

import java.io.Serializable;
import java.sql.ResultSet;
import java.util.Date;

/**
 * 这是accgm_user的数据传输对象基类,直接与表对应<br>
 */
public abstract class AccgmUserModelBase  implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 属性:id<br>
     */
    private Integer id;
    /**
     * 属性:name<br>
     */
    private String name;
    /**
     * 属性:M男 F女<br>
     * 含义:M男 F女<br>
     */
    private String sex;
    /**
     * 属性:生日<br>
     * 含义:生日<br>
     */
    private String birthday;
    /**
     * 属性:身高<br>
     * 含义:身高<br>
     */
    private String height;
    /**
     * 属性:体重<br>
     * 含义:体重<br>
     */
    private String weight;
    /**
     * 属性:0：正常 1：1型 2：2型<br>
     * 含义:0：正常 1：1型 2：2型<br>
     */
    private Integer checkMessage;
    /**
     * 属性:耳垂厚度<br>
     * 含义:耳垂厚度<br>
     */
    private String earlobeWidth;
    /**
     * 属性:是否有穿耳环 Y是 N否<br>
     * 含义:是否有穿耳环 Y是 N否<br>
     */
    private String isEarPiercing;
    /**
     * 属性:密码<br>
     * 含义:密码<br>
     */
    private String password;
    /**
     * 属性:账号<br>
     * 含义:账号<br>
     */
    private String username;
    /**
     * 属性:addTime<br>
     */
    private Date addTime;
    /**
     * 属性:updateTime<br>
     */
    private Date updateTime;

    /**
     *  默认构造方法,构造一个默认的AccgmUserModelBase对象
     */
    public AccgmUserModelBase(){
    }

    /**
     *  构造函数
     *  @param rs 数据库查询结果集
     */
    public AccgmUserModelBase(ResultSet rs){
           try{
               this.id = rs.getInt("id");
               this.name = rs.getString("name");
               this.sex = rs.getString("sex");
               this.birthday = rs.getString("birthday");
               this.height = rs.getString("height");
               this.weight = rs.getString("weight");
               this.checkMessage = rs.getInt("checkMessage");
               this.earlobeWidth = rs.getString("earlobeWidth");
               this.isEarPiercing = rs.getString("isEarPiercing");
               this.password = rs.getString("password");
               this.username = rs.getString("username");
               this.addTime = rs.getDate("addTime");
               this.updateTime = rs.getDate("updateTime");
           }catch(Exception e) {
              e.printStackTrace(); 
           }
    }


    /**
     * 设置属性id<br>
     * @param id 待设置的属性id的值
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * 获取属性id<br>
     * @return 属性id的值
     */
    public Integer getId() {
        return id;
    }

    /**
     * 设置属性name<br>
     * @param name 待设置的属性name的值
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取属性name<br>
     * @return 属性name的值
     */
    public String getName() {
        return name;
    }

    /**
     * 设置属性M男 F女<br>
     * 含义:M男 F女<br>
     * @param sex 待设置的属性M男 F女的值
     */
    public void setSex(String sex) {
        this.sex = sex;
    }

    /**
     * 获取属性M男 F女<br>
     * 含义:M男 F女<br>
     * @return 属性M男 F女的值
     */
    public String getSex() {
        return sex;
    }

    /**
     * 设置属性生日<br>
     * 含义:生日<br>
     * @param birthday 待设置的属性生日的值
     */
    public void setBirthday(String birthday) {
        this.birthday = birthday;
    }

    /**
     * 获取属性生日<br>
     * 含义:生日<br>
     * @return 属性生日的值
     */
    public String getBirthday() {
        return birthday;
    }

    /**
     * 设置属性身高<br>
     * 含义:身高<br>
     * @param height 待设置的属性身高的值
     */
    public void setHeight(String height) {
        this.height = height;
    }

    /**
     * 获取属性身高<br>
     * 含义:身高<br>
     * @return 属性身高的值
     */
    public String getHeight() {
        return height;
    }

    /**
     * 设置属性体重<br>
     * 含义:体重<br>
     * @param weight 待设置的属性体重的值
     */
    public void setWeight(String weight) {
        this.weight = weight;
    }

    /**
     * 获取属性体重<br>
     * 含义:体重<br>
     * @return 属性体重的值
     */
    public String getWeight() {
        return weight;
    }

    /**
     * 设置属性0：正常 1：1型 2：2型<br>
     * 含义:0：正常 1：1型 2：2型<br>
     * @param checkMessage 待设置的属性0：正常 1：1型 2：2型的值
     */
    public void setCheckMessage(Integer checkMessage) {
        this.checkMessage = checkMessage;
    }

    /**
     * 获取属性0：正常 1：1型 2：2型<br>
     * 含义:0：正常 1：1型 2：2型<br>
     * @return 属性0：正常 1：1型 2：2型的值
     */
    public Integer getCheckMessage() {
        return checkMessage;
    }

    /**
     * 设置属性耳垂厚度<br>
     * 含义:耳垂厚度<br>
     * @param earlobeWidth 待设置的属性耳垂厚度的值
     */
    public void setEarlobeWidth(String earlobeWidth) {
        this.earlobeWidth = earlobeWidth;
    }

    /**
     * 获取属性耳垂厚度<br>
     * 含义:耳垂厚度<br>
     * @return 属性耳垂厚度的值
     */
    public String getEarlobeWidth() {
        return earlobeWidth;
    }

    /**
     * 设置属性是否有穿耳环 Y是 N否<br>
     * 含义:是否有穿耳环 Y是 N否<br>
     * @param isEarPiercing 待设置的属性是否有穿耳环 Y是 N否的值
     */
    public void setIsEarPiercing(String isEarPiercing) {
        this.isEarPiercing = isEarPiercing;
    }

    /**
     * 获取属性是否有穿耳环 Y是 N否<br>
     * 含义:是否有穿耳环 Y是 N否<br>
     * @return 属性是否有穿耳环 Y是 N否的值
     */
    public String getIsEarPiercing() {
        return isEarPiercing;
    }

    /**
     * 设置属性密码<br>
     * 含义:密码<br>
     * @param password 待设置的属性密码的值
     */
    public void setPassword(String password) {
        this.password = password;
    }

    /**
     * 获取属性密码<br>
     * 含义:密码<br>
     * @return 属性密码的值
     */
    public String getPassword() {
        return password;
    }

    /**
     * 设置属性账号<br>
     * 含义:账号<br>
     * @param username 待设置的属性账号的值
     */
    public void setUsername(String username) {
        this.username = username;
    }

    /**
     * 获取属性账号<br>
     * 含义:账号<br>
     * @return 属性账号的值
     */
    public String getUsername() {
        return username;
    }

    /**
     * 设置属性addTime<br>
     * @param addTime 待设置的属性addTime的值
     */
    public void setAddTime(Date addTime) {
        this.addTime = addTime;
    }

    /**
     * 获取属性addTime<br>
     * @return 属性addTime的值
     */
    public Date getAddTime() {
        return addTime;
    }

    /**
     * 设置属性updateTime<br>
     * @param updateTime 待设置的属性updateTime的值
     */
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    /**
     * 获取属性updateTime<br>
     * @return 属性updateTime的值
     */
    public Date getUpdateTime() {
        return updateTime;
    }


    /**
     * 比较两个对象在逻辑上是否相等
     * @see java.lang.Object#equals(java.lang.Object)
     */
    public boolean equals(Object other) {
        if (this == other) {
            return true;
        }
        if (!(other instanceof AccgmUserModelBase)) {
            return false;
        }

        final AccgmUserModelBase otherModel = (AccgmUserModelBase) other;
        if (getId()!=null && !getId().equals(otherModel.getId())) {
            return false;
        }
        return true;
    }

    /**
     * 根据主键生成HashCode
     * @see java.lang.Object#hashCode()
     */
    public int hashCode() {
        StringBuffer buffer = new StringBuffer();
        buffer.append('|').append(id);
        return buffer.toString().hashCode();
    }
}
